unit ufrmPanelProyecto;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.ComCtrls,
  JvExComCtrls, JvStatusBar, Vcl.OleCtrls, SHDocVw, GMClasses, GMMap, GMMapVCL,
  GMInfoWindow, GMLinkedComponents, GMMarker, GMMarkerVCL, Vcl.ToolWin,
  Vcl.ActnMan, Vcl.ActnCtrls, Vcl.ActnList, Vcl.ImgList,
  Vcl.PlatformDefaultStyleActnCtrls, JvToolBar, JvComCtrls, Vcl.Menus,
  ChromeTabs;

type
  TfrmPanelProyecto = class(TForm)
    pnl1: TPanel;
    spl1: TSplitter;
    gmp1: TGMMap;
    gmrkr1: TGMMarker;
    gminfo1: TGMInfoWindow;
    actmgr1: TActionManager;
    il1: TImageList;
    actAgregarSitio: TAction;
    actQuitarSitio: TAction;
    actAgregarEnlace: TAction;
    actQuitarEnlace: TAction;
    tlbMain: TJvToolBar;
    btnAgregarSitio: TToolButton;
    btnQuitarSitio: TToolButton;
    btnAgregarEnlace: TToolButton;
    btnQuitarEnlace: TToolButton;
    ToolButton5: TToolButton;
    iltree: TImageList;
    tv1: TJvTreeView;
    pmmap: TPopupMenu;
    AgregarSitio1: TMenuItem;
    pnl2: TPanel;
    wb1: TWebBrowser;
    chrtab1: TChromeTabs;
    pmtree: TPopupMenu;
    AgregarSitio2: TMenuItem;
    QuitarSitio1: TMenuItem;
    N1: TMenuItem;
    AgregarEnlace1: TMenuItem;
    QuitarEnlace1: TMenuItem;
    procedure gmp1AfterPageLoaded(Sender: TObject; First: Boolean);
    procedure actAgregarSitioExecute(Sender: TObject);
    procedure actQuitarSitioExecute(Sender: TObject);
    procedure actAgregarEnlaceExecute(Sender: TObject);
    procedure actQuitarEnlaceExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure gmp1CenterChanged(Sender: TObject; LatLng: TLatLng; X, Y: Double);
    procedure wb1DownloadBegin(Sender: TObject);
    procedure wb1DownloadComplete(Sender: TObject);
    procedure gmp1RightClick(Sender: TObject; LatLng: TLatLng; X, Y: Double);
  private
    { Private declarations }
    procedure mensajes(var m: tmessage); message WM_USER;
    procedure iniciar_proyecto;
  public
    { Public declarations }
    procedure abrir(archivo: string);
  end;

var
  frmPanelProyecto: TfrmPanelProyecto;

implementation

uses
  manejador_proyecto, ufrmSitio, imglib;

var
  proyecto: TProyecto;

const
  ms_expandir_arbol: integer = WM_USER + 100;
  ms_iniciar_proyecto: integer = WM_USER + 50;

{$R *.dfm}

procedure TfrmPanelProyecto.abrir(archivo: string);
begin
  proyecto.Abrir(archivo);
end;

procedure TfrmPanelProyecto.actAgregarEnlaceExecute(Sender: TObject);
begin
  { }
end;

procedure TfrmPanelProyecto.actAgregarSitioExecute(Sender: TObject);
begin
  frmSitio := TfrmSitio.Create(self);
  if frmSitio.ShowModal = mrok then
  begin




  end;
  frmSitio.Free;
end;

procedure TfrmPanelProyecto.actQuitarEnlaceExecute(Sender: TObject);
begin
  { }
end;

procedure TfrmPanelProyecto.actQuitarSitioExecute(Sender: TObject);
begin
  { }
end;

procedure TfrmPanelProyecto.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  proyecto.Free;
  Action := cafree;
end;

procedure TfrmPanelProyecto.FormCreate(Sender: TObject);
begin

  proyecto := TProyecto.create;
  tlbMain.DisabledImages := imglib.DisabledImages(il1);

  PostMessage(handle, WM_USER, ms_iniciar_proyecto,0);
  PostMessage(handle, WM_USER, ms_expandir_arbol, 0);

end;

procedure TfrmPanelProyecto.gmp1AfterPageLoaded(Sender: TObject;
  First: Boolean);
begin
  if First then
  begin

    gmp1.DoMap;

  end;
end;

procedure TfrmPanelProyecto.gmp1CenterChanged(Sender: TObject; LatLng: TLatLng;
  X, Y: Double);
begin
  proyecto.Centro := LatLng ;
end;

procedure TfrmPanelProyecto.gmp1RightClick(Sender: TObject; LatLng: TLatLng; X,
  Y: Double);
var
  cp: TPoint;
begin
  GetCursorPos(cp);
  pmmap.Popup(cp.X , cp.y);

end;

procedure TfrmPanelProyecto.iniciar_proyecto;
begin

  if not Assigned(proyecto) then exit;

  caption := proyecto.Nombre ;
  gmp1.RequiredProp.Center := proyecto.Centro ;

end;

procedure TfrmPanelProyecto.mensajes(var m: tmessage);
begin
  case m.WParam of
    1124: { expandir arbol del proyecto }
      tv1.Items.GetFirstNode.Expand(true);
    1074: { iniciar las propiedades del manejador de proyectos }
     iniciar_proyecto;
  end;
end;

procedure TfrmPanelProyecto.wb1DownloadBegin(Sender: TObject);
begin
  wb1.Cursor := crHourGlass ;
end;

procedure TfrmPanelProyecto.wb1DownloadComplete(Sender: TObject);
begin
  wb1.Cursor := crDefault;
end;

end.
